package ejb;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import jpa.Acquisto;
import jpa.Prodotto;
import jpa.Puntate;
import jpa.Utente;

/**
 *
 * @author frazz
 */
@Stateless
public class GestoreAste {

    @PersistenceContext
    private EntityManager em;

    public void cancellaProdotto(Integer id) {
        Prodotto p = em.find(Prodotto.class, id);
        if (p == null) {
            throw new RuntimeException("PRODOTTO NON PRESENTE");
        }
        em.remove(p);

    }

    public void inserisciProdotto(Prodotto p) {
        em.persist(p);
    }

    public void aggiungiUtente(Utente c) {
        em.persist(c);
    }

    public void cancellaUtente(Integer id, String username) {
        Utente u = em.find(Utente.class, username);
        if (u == null) {
            throw new RuntimeException("PRODOTTO NON PRESENTE");
        }
        em.refresh(u);
    }

    public boolean inserisciPuntate(Puntate p) {
        Utente u = em.find(Utente.class, p.getCliente());
        if (u.getCrediti() > 0) {
            u.setCrediti(u.getCrediti() - 1);
            em.persist(p);
            return true;
        } else {
            return false;
        }
    }

    public void inserisciAcquisto(Acquisto a) {
        em.persist(a);
    }
}
